import time

from selenium import webdriver
from selenium.webdriver.common.by import By

# 打开浏览器
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.maximize_window()

# TODO 常用属性
kw = driver.find_element(By.ID, 'kw')
# id标识
print(kw.id)

#  size 宽高
print(kw.size)

# rect  宽高和坐标
print(kw.rect)

# tag_name标签名
print(kw.tag_name)

# text 文本内容
print(kw.text)  # 不存在空

news = driver.find_element(By.LINK_TEXT, '新闻')
print(news.text)

# 退出浏览器
driver.quit()


# TODO常用方法

# clear()清空内容
# get_attribute()获得属性值
# is_displayed()判断元素是否可见
# is_enabled()判断元素是否可用
class TestCase:
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.baidu.com')

    def clear(self):
        # 搜索洗面奶
        time.sleep(2)
        kw = self.driver.find_element(By.ID, 'kw')
        kw.send_keys('洗面奶')

        # 清空
        time.sleep(2)
        kw.clear()

        # 搜索热干面
        kw.send_keys('热干面')

    def get_attribute(self):
        # 获取标签html属性
        kw = self.driver.find_element(By.ID, 'kw')
        print(kw.get_attribute('outerHTML'))
        print(kw.get_attribute('name'))
        print(kw.get_attribute('id'))
        print(kw.get_attribute('class'))
        print(kw.get_attribute('autocomplete'))

    def is_displayed(self):
        # 判断标签是否在页面中显示，显示就是True， 不显示False
        kw = self.driver.find_element(By.ID, 'kw')
        print(kw.is_displayed())
        kw = self.driver.find_element(By.XPATH, '//*[@id="form"]/span[1]')
        print(kw.is_displayed())

    def is_enabled(self):
        # is_enabled()判断元素是否可用, 可用返回True， 不可用返回False
        ipt = self.driver.find_element(By.XPATH, '//form/input[3]')
        print(ipt.is_enabled())


if __name__ == '__main__':
    case = TestCase()
    # case.clear()
    case.get_attribute()
    case.is_displayed()
    case.is_enabled()
